﻿using Microsoft.AspNetCore.Mvc;
using Configuration.ServerApi.Param;
using System.Threading.Tasks;

namespace Configuration.ServerApi.Service
{
    /// <summary>
    /// IDeviceService
    /// </summary>
    public interface IDeviceService
    {
        /// <summary>
        /// 获取所有节点数据
        /// </summary>
        /// <param name="param">搜索条件</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> GetAllNodeData(SearchModel param);

        /// <summary>
        /// 获取节点配置详情
        /// </summary>
        /// <param name="param">搜索条件</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> NodeDataDetail(SearchModel param);

        /// <summary>
        /// 写入指定节点数据
        /// </summary>
        /// <param name="param">更新参数集</param>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> SetNodeData(UpdateModel param);

        /// <summary>
        /// 获取全部设备运行状态
        /// </summary>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> AllDeviceStatusData();

        /// <summary>
        /// 获取AGV小车状态详情
        /// </summary>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> GetAutoGuideVehicleStatus();

        /// <summary>
        /// 获取球磨机状态详情
        /// </summary>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> GetBallMillingStationStatus();

        /// <summary>
        /// 获取管式炉状态详情
        /// </summary>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> GetTubeFurnaceStationStatus();

        /// <summary>
        /// 获取下装炉状态详情
        /// </summary>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> GetBottomFurnaceStationStatus();

        /// <summary>
        /// 获取开盖机状态详情
        /// </summary>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> GetCapperStationStatus();

        /// <summary>
        /// 获取坩埚转换位状态详情
        /// </summary>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> GetCrucibleConversionStationStatus();

        /// <summary>
        /// 获取破碎机状态详情
        /// </summary>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> GetCrusherStationStatus();

        /// <summary>
        /// 获取电化学测试仪状态详情
        /// </summary>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> GetElectroChemistryTestingStationStatus();

        /// <summary>
        /// 获取高通量配粉设备状态详情
        /// </summary>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> GetFlourBlendingStationStatus();

        /// <summary>
        /// 获取ROBOT机器人状态详情
        /// </summary>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> GetJakaRobotStatus();

        /// <summary>
        /// 获取磁力搅拌捏片蠕动设备状态详情
        /// </summary>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> GetMagneticPeristalticOthersStationStatus();

        /// <summary>
        /// 获取烘箱设备状态详情
        /// </summary>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> GetOvenStationStatus();

        /// <summary>
        /// 获取封装机状态详情
        /// </summary>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> GetPackagingStationStatus();

        /// <summary>
        /// 获取压片机状态详情
        /// </summary>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> GetTabletPressStationStatus();

        /// <summary>
        /// 获取移液配比设备状态详情
        /// </summary>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> GetPipetteDistributionStationStatus();

        /// <summary>
        /// 获取刷料机设备状态详情
        /// </summary>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> GetScrapingStationStatus();

        /// <summary>
        /// 获取固液测试设备状态详情
        /// </summary>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> GetSolidLiquidTestingStationStatus();

        /// <summary>
        /// 获取固固测试设备状态详情
        /// </summary>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> GetSolidSolidTestingStationStatus();

        /// <summary>
        /// 获取XRD测试设备状态详情
        /// </summary>
        /// <returns>JSON结果集</returns>
        public Task<JsonResult> GetXRDTestingStationStatus();

    }
}
